package com.yungu.swift.assets.passenger.dao;

import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import com.yungu.swift.assets.passenger.model.dto.PassengerCouponDto;
import com.yungu.swift.assets.passenger.model.vo.PassengerCouponExportVo;
import com.yungu.swift.base.mapper.IMapper;
import org.apache.ibatis.annotations.Update;

import java.util.List;
import java.util.Map;

/**
 * 乘客优惠券Mapper
 *
 * @author cuixiuyin - Generate
 * @version 1.1.1-SNAPSHOT
 * @since 2018-07-03 18:03
 */
public interface PassengerCouponMapper extends IMapper<PassengerCouponDto> {

    /**
     * 获取优惠券列表
     *
     * @param map        Map
     * @param pageBounds PageBounds
     * @return List<PassengerCouponDto>
     */
    List<PassengerCouponDto> getCouponList(Map<String, Object> map, PageBounds pageBounds);


    /**
     * 获取不可用优惠券列表
     *
     * @param map Map
     * @return List<PassengerCouponDto>
     */
    List<PassengerCouponDto> getPayCouponList(Map<String, Object> map);

    /**
     * 多条插入
     *
     * @param list List
     * @return int
     */
    int addBatch(List<PassengerCouponDto> list);

    /**
     * 查询出和订单相关联的分页数据
     *
     * @param map        Map
     * @param pageBounds PageBounds
     * @return PageList
     */
    PageList<PassengerCouponDto> queryOrderPage(Map map, PageBounds pageBounds);

    /**
     * listExport
     *
     * @param map Map
     * @return List
     */
    List<PassengerCouponExportVo> listExport(Map<String, Object> map);

    /**
     * 退回优惠卷
     *
     * @param orderUuid
     * @return
     */
    @Update("UPDATE t_passenger_coupon SET money = null,order_uuid = null,use_time = null,status=1 WHERE order_uuid= #{orderUuid}")
    long refundCoupon(String orderUuid);
}